package 线程.综合练习.送礼品;

import java.util.concurrent.locks.ReentrantLock;

public class giftTh extends Thread{
    //定义一个共同的lock锁
    @Override
    public void run() {
        while (true){
            synchronized (giftTh.class){
                if (person.count<10){
                    System.out.println("礼物送完了");
                    break;
                }else {
                    //如果另外一个人没有送礼物
                    if (person.getGift==0){
                        //送出礼物
                        person.count--;
                        person.getGift=1;
                        System.out.println(getName()+":我是第一个开始送礼物的人,还有"+person.count+"份礼物");
                        //等待另外一个人送礼物
                        try {
                            System.out.println(getName()+":我已经送完了,等待另外一个人送礼物");;
                            giftTh.class.wait();
                        } catch (InterruptedException e) {
                            throw new RuntimeException(e);
                        }
                    }else {
                        //另外一个人送了礼物

                        //自己也送出礼物,并把送物的判断重置
                        person.getGift=0;
                        person.count--;
                        System.out.println(getName()+":我是第二个开始送的,要送下一个人了,还有"+person.count+"份礼物");
                        //告诉对方自己已经送出礼物,开始送下一个
                        giftTh.class.notifyAll();
                    }
                }
            }
        }
    }
}
